/**
 */
package org.karelun.rabbit.graph;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 * <!-- begin-user-doc -->
 * The <b>Package</b> for the model.
 * It contains accessors for the meta objects to represent
 * <ul>
 *   <li>each class,</li>
 *   <li>each feature of each class,</li>
 *   <li>each enum,</li>
 *   <li>and each data type</li>
 * </ul>
 * <!-- end-user-doc -->
 * @see org.karelun.rabbit.graph.GraphFactory
 * @model kind="package"
 * @generated
 */
public interface GraphPackage extends EPackage {
	/**
	 * The package name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNAME = "graph";

	/**
	 * The package namespace URI.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_URI = "http://www.karelun.org/rabbit";

	/**
	 * The package namespace name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	String eNS_PREFIX = "graph";

	/**
	 * The singleton instance of the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	GraphPackage eINSTANCE = org.karelun.rabbit.graph.impl.GraphPackageImpl.init();

	/**
	 * The meta object id for the '{@link org.karelun.rabbit.graph.Texted <em>Texted</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.karelun.rabbit.graph.Texted
	 * @see org.karelun.rabbit.graph.impl.GraphPackageImpl#getTexted()
	 * @generated
	 */
	int TEXTED = 0;

	/**
	 * The feature id for the '<em><b>Text</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEXTED__TEXT = 0;

	/**
	 * The number of structural features of the '<em>Texted</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int TEXTED_FEATURE_COUNT = 1;

	/**
	 * The meta object id for the '{@link org.karelun.rabbit.graph.impl.ShapeImpl <em>Shape</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.karelun.rabbit.graph.impl.ShapeImpl
	 * @see org.karelun.rabbit.graph.impl.GraphPackageImpl#getShape()
	 * @generated
	 */
	int SHAPE = 1;

	/**
	 * The feature id for the '<em><b>Text</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SHAPE__TEXT = TEXTED__TEXT;

	/**
	 * The feature id for the '<em><b>X</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SHAPE__X = TEXTED_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Y</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SHAPE__Y = TEXTED_FEATURE_COUNT + 1;

	/**
	 * The feature id for the '<em><b>Width</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SHAPE__WIDTH = TEXTED_FEATURE_COUNT + 2;

	/**
	 * The feature id for the '<em><b>Height</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SHAPE__HEIGHT = TEXTED_FEATURE_COUNT + 3;

	/**
	 * The feature id for the '<em><b>Source Connections</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SHAPE__SOURCE_CONNECTIONS = TEXTED_FEATURE_COUNT + 4;

	/**
	 * The feature id for the '<em><b>Target Connections</b></em>' reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SHAPE__TARGET_CONNECTIONS = TEXTED_FEATURE_COUNT + 5;

	/**
	 * The number of structural features of the '<em>Shape</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int SHAPE_FEATURE_COUNT = TEXTED_FEATURE_COUNT + 6;

	/**
	 * The meta object id for the '{@link org.karelun.rabbit.graph.impl.ConnectionImpl <em>Connection</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.karelun.rabbit.graph.impl.ConnectionImpl
	 * @see org.karelun.rabbit.graph.impl.GraphPackageImpl#getConnection()
	 * @generated
	 */
	int CONNECTION = 2;

	/**
	 * The feature id for the '<em><b>Text</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONNECTION__TEXT = TEXTED__TEXT;

	/**
	 * The feature id for the '<em><b>Target Shape</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONNECTION__TARGET_SHAPE = TEXTED_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Source Shape</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONNECTION__SOURCE_SHAPE = TEXTED_FEATURE_COUNT + 1;

	/**
	 * The number of structural features of the '<em>Connection</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int CONNECTION_FEATURE_COUNT = TEXTED_FEATURE_COUNT + 2;

	/**
	 * The meta object id for the '{@link org.karelun.rabbit.graph.impl.DiagramImpl <em>Diagram</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.karelun.rabbit.graph.impl.DiagramImpl
	 * @see org.karelun.rabbit.graph.impl.GraphPackageImpl#getDiagram()
	 * @generated
	 */
	int DIAGRAM = 3;

	/**
	 * The feature id for the '<em><b>Text</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DIAGRAM__TEXT = TEXTED__TEXT;

	/**
	 * The feature id for the '<em><b>Shapes</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DIAGRAM__SHAPES = TEXTED_FEATURE_COUNT + 0;

	/**
	 * The feature id for the '<em><b>Connections</b></em>' containment reference list.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DIAGRAM__CONNECTIONS = TEXTED_FEATURE_COUNT + 1;

	/**
	 * The number of structural features of the '<em>Diagram</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int DIAGRAM_FEATURE_COUNT = TEXTED_FEATURE_COUNT + 2;

	/**
	 * The meta object id for the '{@link org.karelun.rabbit.graph.Rectangled <em>Rectangled</em>}' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.karelun.rabbit.graph.Rectangled
	 * @see org.karelun.rabbit.graph.impl.GraphPackageImpl#getRectangled()
	 * @generated
	 */
	int RECTANGLED = 4;

	/**
	 * The feature id for the '<em><b>X</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int RECTANGLED__X = 0;

	/**
	 * The feature id for the '<em><b>Y</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int RECTANGLED__Y = 1;

	/**
	 * The feature id for the '<em><b>Width</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int RECTANGLED__WIDTH = 2;

	/**
	 * The feature id for the '<em><b>Height</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int RECTANGLED__HEIGHT = 3;

	/**
	 * The number of structural features of the '<em>Rectangled</em>' class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 * @ordered
	 */
	int RECTANGLED_FEATURE_COUNT = 4;


	/**
	 * Returns the meta object for class '{@link org.karelun.rabbit.graph.Texted <em>Texted</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Texted</em>'.
	 * @see org.karelun.rabbit.graph.Texted
	 * @generated
	 */
	EClass getTexted();

	/**
	 * Returns the meta object for the attribute '{@link org.karelun.rabbit.graph.Texted#getText <em>Text</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Text</em>'.
	 * @see org.karelun.rabbit.graph.Texted#getText()
	 * @see #getTexted()
	 * @generated
	 */
	EAttribute getTexted_Text();

	/**
	 * Returns the meta object for class '{@link org.karelun.rabbit.graph.Shape <em>Shape</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Shape</em>'.
	 * @see org.karelun.rabbit.graph.Shape
	 * @generated
	 */
	EClass getShape();

	/**
	 * Returns the meta object for the reference list '{@link org.karelun.rabbit.graph.Shape#getSourceConnections <em>Source Connections</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference list '<em>Source Connections</em>'.
	 * @see org.karelun.rabbit.graph.Shape#getSourceConnections()
	 * @see #getShape()
	 * @generated
	 */
	EReference getShape_SourceConnections();

	/**
	 * Returns the meta object for the reference list '{@link org.karelun.rabbit.graph.Shape#getTargetConnections <em>Target Connections</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference list '<em>Target Connections</em>'.
	 * @see org.karelun.rabbit.graph.Shape#getTargetConnections()
	 * @see #getShape()
	 * @generated
	 */
	EReference getShape_TargetConnections();

	/**
	 * Returns the meta object for class '{@link org.karelun.rabbit.graph.Connection <em>Connection</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Connection</em>'.
	 * @see org.karelun.rabbit.graph.Connection
	 * @generated
	 */
	EClass getConnection();

	/**
	 * Returns the meta object for the reference '{@link org.karelun.rabbit.graph.Connection#getTargetShape <em>Target Shape</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Target Shape</em>'.
	 * @see org.karelun.rabbit.graph.Connection#getTargetShape()
	 * @see #getConnection()
	 * @generated
	 */
	EReference getConnection_TargetShape();

	/**
	 * Returns the meta object for the reference '{@link org.karelun.rabbit.graph.Connection#getSourceShape <em>Source Shape</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the reference '<em>Source Shape</em>'.
	 * @see org.karelun.rabbit.graph.Connection#getSourceShape()
	 * @see #getConnection()
	 * @generated
	 */
	EReference getConnection_SourceShape();

	/**
	 * Returns the meta object for class '{@link org.karelun.rabbit.graph.Diagram <em>Diagram</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Diagram</em>'.
	 * @see org.karelun.rabbit.graph.Diagram
	 * @generated
	 */
	EClass getDiagram();

	/**
	 * Returns the meta object for the containment reference list '{@link org.karelun.rabbit.graph.Diagram#getShapes <em>Shapes</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Shapes</em>'.
	 * @see org.karelun.rabbit.graph.Diagram#getShapes()
	 * @see #getDiagram()
	 * @generated
	 */
	EReference getDiagram_Shapes();

	/**
	 * Returns the meta object for the containment reference list '{@link org.karelun.rabbit.graph.Diagram#getConnections <em>Connections</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the containment reference list '<em>Connections</em>'.
	 * @see org.karelun.rabbit.graph.Diagram#getConnections()
	 * @see #getDiagram()
	 * @generated
	 */
	EReference getDiagram_Connections();

	/**
	 * Returns the meta object for class '{@link org.karelun.rabbit.graph.Rectangled <em>Rectangled</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for class '<em>Rectangled</em>'.
	 * @see org.karelun.rabbit.graph.Rectangled
	 * @generated
	 */
	EClass getRectangled();

	/**
	 * Returns the meta object for the attribute '{@link org.karelun.rabbit.graph.Rectangled#getX <em>X</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>X</em>'.
	 * @see org.karelun.rabbit.graph.Rectangled#getX()
	 * @see #getRectangled()
	 * @generated
	 */
	EAttribute getRectangled_X();

	/**
	 * Returns the meta object for the attribute '{@link org.karelun.rabbit.graph.Rectangled#getY <em>Y</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Y</em>'.
	 * @see org.karelun.rabbit.graph.Rectangled#getY()
	 * @see #getRectangled()
	 * @generated
	 */
	EAttribute getRectangled_Y();

	/**
	 * Returns the meta object for the attribute '{@link org.karelun.rabbit.graph.Rectangled#getWidth <em>Width</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Width</em>'.
	 * @see org.karelun.rabbit.graph.Rectangled#getWidth()
	 * @see #getRectangled()
	 * @generated
	 */
	EAttribute getRectangled_Width();

	/**
	 * Returns the meta object for the attribute '{@link org.karelun.rabbit.graph.Rectangled#getHeight <em>Height</em>}'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the meta object for the attribute '<em>Height</em>'.
	 * @see org.karelun.rabbit.graph.Rectangled#getHeight()
	 * @see #getRectangled()
	 * @generated
	 */
	EAttribute getRectangled_Height();

	/**
	 * Returns the factory that creates the instances of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the factory that creates the instances of the model.
	 * @generated
	 */
	GraphFactory getGraphFactory();

	/**
	 * <!-- begin-user-doc -->
	 * Defines literals for the meta objects that represent
	 * <ul>
	 *   <li>each class,</li>
	 *   <li>each feature of each class,</li>
	 *   <li>each enum,</li>
	 *   <li>and each data type</li>
	 * </ul>
	 * <!-- end-user-doc -->
	 * @generated
	 */
	interface Literals {
		/**
		 * The meta object literal for the '{@link org.karelun.rabbit.graph.Texted <em>Texted</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see org.karelun.rabbit.graph.Texted
		 * @see org.karelun.rabbit.graph.impl.GraphPackageImpl#getTexted()
		 * @generated
		 */
		EClass TEXTED = eINSTANCE.getTexted();

		/**
		 * The meta object literal for the '<em><b>Text</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute TEXTED__TEXT = eINSTANCE.getTexted_Text();

		/**
		 * The meta object literal for the '{@link org.karelun.rabbit.graph.impl.ShapeImpl <em>Shape</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see org.karelun.rabbit.graph.impl.ShapeImpl
		 * @see org.karelun.rabbit.graph.impl.GraphPackageImpl#getShape()
		 * @generated
		 */
		EClass SHAPE = eINSTANCE.getShape();

		/**
		 * The meta object literal for the '<em><b>Source Connections</b></em>' reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference SHAPE__SOURCE_CONNECTIONS = eINSTANCE.getShape_SourceConnections();

		/**
		 * The meta object literal for the '<em><b>Target Connections</b></em>' reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference SHAPE__TARGET_CONNECTIONS = eINSTANCE.getShape_TargetConnections();

		/**
		 * The meta object literal for the '{@link org.karelun.rabbit.graph.impl.ConnectionImpl <em>Connection</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see org.karelun.rabbit.graph.impl.ConnectionImpl
		 * @see org.karelun.rabbit.graph.impl.GraphPackageImpl#getConnection()
		 * @generated
		 */
		EClass CONNECTION = eINSTANCE.getConnection();

		/**
		 * The meta object literal for the '<em><b>Target Shape</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference CONNECTION__TARGET_SHAPE = eINSTANCE.getConnection_TargetShape();

		/**
		 * The meta object literal for the '<em><b>Source Shape</b></em>' reference feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference CONNECTION__SOURCE_SHAPE = eINSTANCE.getConnection_SourceShape();

		/**
		 * The meta object literal for the '{@link org.karelun.rabbit.graph.impl.DiagramImpl <em>Diagram</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see org.karelun.rabbit.graph.impl.DiagramImpl
		 * @see org.karelun.rabbit.graph.impl.GraphPackageImpl#getDiagram()
		 * @generated
		 */
		EClass DIAGRAM = eINSTANCE.getDiagram();

		/**
		 * The meta object literal for the '<em><b>Shapes</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference DIAGRAM__SHAPES = eINSTANCE.getDiagram_Shapes();

		/**
		 * The meta object literal for the '<em><b>Connections</b></em>' containment reference list feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EReference DIAGRAM__CONNECTIONS = eINSTANCE.getDiagram_Connections();

		/**
		 * The meta object literal for the '{@link org.karelun.rabbit.graph.Rectangled <em>Rectangled</em>}' class.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @see org.karelun.rabbit.graph.Rectangled
		 * @see org.karelun.rabbit.graph.impl.GraphPackageImpl#getRectangled()
		 * @generated
		 */
		EClass RECTANGLED = eINSTANCE.getRectangled();

		/**
		 * The meta object literal for the '<em><b>X</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute RECTANGLED__X = eINSTANCE.getRectangled_X();

		/**
		 * The meta object literal for the '<em><b>Y</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute RECTANGLED__Y = eINSTANCE.getRectangled_Y();

		/**
		 * The meta object literal for the '<em><b>Width</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute RECTANGLED__WIDTH = eINSTANCE.getRectangled_Width();

		/**
		 * The meta object literal for the '<em><b>Height</b></em>' attribute feature.
		 * <!-- begin-user-doc -->
		 * <!-- end-user-doc -->
		 * @generated
		 */
		EAttribute RECTANGLED__HEIGHT = eINSTANCE.getRectangled_Height();

	}

} //GraphPackage
